package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"strconv"
)

func main() {
	// /add是路径，func是后台方法，w是返回结果，r是请求参数
	//http://127.0.0.1:8080/add?a=1&b=2   其中：/add代表CallID，?代表传参 a=1&b=2具体传递的参数，参数直接用&连接
	//CallID: r.URL.Path(这个是CallID)
	http.HandleFunc("/add", func(w http.ResponseWriter, r *http.Request) {
		_ = r.ParseForm() //解析参数
		fmt.Println("path", r.URL.Path)
		a, _ := strconv.Atoi(r.Form["a"][0]) //获取r入参a的值，因为值是个[]string类型，所有需要转换
		b, _ := strconv.Atoi(r.Form["b"][0])
		w.Header().Set("Content-Type", "application/json") //定义返回结果的数据格式
		//定义json类型的返回结果
		jData, _ := json.Marshal(map[string]int{
			"data": a + b,
		})
		//返回结果
		_, _ = w.Write(jData)
	})
	//启动服务，监听端口地址
	err := http.ListenAndServe(":8080", nil)
	if err != nil {
		fmt.Println(err)
	}
}
